package 设计原则.迪米特法则;

/**
 * `Person` 知道了 `Computer`的很多细节，对于用户来说不够友好，
 * 而且，用户还可能会调用错误，先断电，再保存文件，显然不符合逻辑，会导致文件出现未保存的错误。
 * 其实对于用户来说，知道进行关机就行了。
 * <p>
 * 正例：封装细节
 *
 * @author lxiaol
 * @date 2021年06月24日 15:23
 */
public class postive {
    class Computer {
        private void closeFile() {
            System.out.println("关闭文件");
        }

        private void closeScreen() {
            System.out.println("关闭屏幕");
        }

        private void powerOff() {
            System.out.println("断电");
        }

        //封装细节
        public void turnOff() {
            this.closeFile();
            this.closeScreen();
            this.powerOff();
        }
    }

    class Person {
        private Computer computer;

        // 只关注关机,不考虑细节,细节在关机方法里面已经设定好了,用户无需知晓
        public void offComputer() {
            computer.turnOff();
        }
    }

}
